﻿// @include "../code/Type.js"
/**
 * @fileOverview 模版类
 * 
 * @version qinglan_tmpl 1.0
 * @static
 * @author wxq wxqqh@qq.com
 */
/**
 * 命名空间
 * 
 * @namespace
 * @type Object
 */
window.qinglan = window.qinglan || {};
/**
 * 模版命名空间
 * 
 * @namespace
 * @type Object
 */
qinglan.Tmpl = qinglan.Tmpl || {};
/**
 * 进行简单的字符串模版替换<br/> 主要使用正则进行参数的匹配和替换<br/> 模版中需要替换的数据名称和obj中的一致并且用'{'和'}'括起来<br/>
 * 另外,如果模版中有的数据obj中没有则默认为空('')
 * 
 * @param {String}
 *            str 需要替换的模版
 * @param {Object}
 *            obj 模版数据来源
 * @return {String} 生成后的具体数据
 */
qinglan.Tmpl.smTmpl = function(str, obj) {
	if (!qinglan.Type.isString(str)) {
		return '';
	}
	if (!(qinglan.Type.isObject(obj) && 'isPrototypeOf' in obj)) {
		return str;
	}
	return str.replace(/{([^{}]+)}/g, function(match, key) {
				var value = obj[key];
				return (value !== undefined) ? '' + value : '';
			});
};